আনসিবল (Ansible)

ইনভেন্টরি ফাইল এবং এর ফরম্যাট

Latest Technologies - আনসিবল (Ansible) - Ansible এর ইনস্টলেশন এবং সেটআপ | NCTB BOOK

Ansible ইনভেন্টরি ফাইল হল একটি ফাইল যেখানে আপনি আপনার ম্যানেজড হোস্ট বা সার্ভারের তালিকা রাখেন। এই ফাইলের মাধ্যমে Ansible জানে কোন হোস্টগুলির সাথে যোগাযোগ করতে হবে এবং কোন গ্রুপে কোন হোস্ট আছে। ইনভেন্টরি ফাইলটি সাধারণত /etc/ansible/hosts এ থাকে, কিন্তু আপনি চাইলে প্রোজেক্ট ডিরেক্টরিতে বা কাস্টম লোকেশনে রাখতে পারেন।

ইনভেন্টরি ফাইলের ফরম্যাট

Ansible ইনভেন্টরি ফাইল সাধারণত দুটি ফরম্যাটে লেখা হয়:

  1. ইনিআই (INI) ফরম্যাট (সাধারণ টেক্সট ফাইল)
  2. ইয়ামল (YAML) ফরম্যাট

১. INI ফরম্যাটে ইনভেন্টরি ফাইল

INI ফরম্যাটে ইনভেন্টরি ফাইলের লেখার নিয়ম সহজ এবং এটি সাধারণত হোস্ট এবং গ্রুপের তালিকা আকারে লেখা হয়। নিচে একটি উদাহরণ দেওয়া হলো:

# হোস্টের তালিকা
192.168.1.10
webserver.example.com

# গ্রুপ দিয়ে হোস্ট সংগঠিত করা
[webservers]
web1.example.com
web2.example.com

[databases]
db1.example.com
db2.example.com

# গ্রুপের ভেতরে ভ্যারিয়েবল
[webservers:vars]
ansible_user=ansible_user
ansible_ssh_private_key_file=~/.ssh/id_rsa

INI ফরম্যাট ব্যাখ্যা:

  • সাধারণ হোস্ট: সরাসরি IP বা হোস্টনেম লিখে দিলে Ansible সেগুলির সাথে কাজ করতে পারবে।
  • গ্রুপ: [] এর ভেতরে গ্রুপের নাম দিলে এবং তার নিচে হোস্টগুলির নাম দিলে Ansible সেই হোস্টগুলিকে একসাথে সেই গ্রুপ হিসেবে ধরবে।
  • গ্রুপ ভ্যারিয়েবল: [group_name:vars] দিয়ে আপনি গ্রুপের জন্য নির্দিষ্ট ভ্যারিয়েবল সেট করতে পারেন, যেমন ansible_user বা ansible_ssh_private_key_file

২. YAML ফরম্যাটে ইনভেন্টরি ফাইল

YAML ফরম্যাট আরো আধুনিক এবং ফ্লেক্সিবল। এটি বড় এবং জটিল ইনভেন্টরি ব্যবস্থাপনার জন্য উপযোগী। নিচে YAML ইনভেন্টরি ফাইলের একটি উদাহরণ দেওয়া হলো:

all:
  children:
    webservers:
      hosts:
        web1.example.com:
          ansible_user: ansible_user
        web2.example.com:
          ansible_user: ansible_user
    databases:
      hosts:
        db1.example.com:
          ansible_user: db_user
        db2.example.com:
          ansible_user: db_user
  vars:
    ansible_ssh_private_key_file: ~/.ssh/id_rsa

YAML ফরম্যাট ব্যাখ্যা:

  • all: এটি মূল গ্রুপ, যা সমস্ত হোস্ট এবং গ্রুপ অন্তর্ভুক্ত করে।
  • children: এর ভেতরে বিভিন্ন গ্রুপ রাখা হয়, যেমন webservers এবং databases
  • hosts: প্রতিটি গ্রুপের ভেতরে হোস্টগুলির নাম এবং তাদের জন্য নির্দিষ্ট ভ্যারিয়েবল দেওয়া হয়।
  • vars: গ্লোবাল ভ্যারিয়েবল যা সমস্ত হোস্টের জন্য প্রযোজ্য।

ইনভেন্টরি ফাইলের ব্যবহার

Ansible ইনভেন্টরি ফাইলটি ব্যবহার করে আপনি যেকোনো কমান্ড বা প্লেবুক রান করতে পারেন। উদাহরণস্বরূপ:

ansible all -i ./inventory -m ping
  • -i ./inventory: আপনার কাস্টম ইনভেন্টরি ফাইলটি নির্দেশ করে।
  • -m ping: ping মডিউল ব্যবহার করে সমস্ত হোস্ট চেক করা হয়।

ডায়নামিক ইনভেন্টরি

যদি আপনার হোস্টের সংখ্যা অনেক বেশি হয় এবং তাদের আইপি বা হোস্টনেমগুলো পরিবর্তনশীল হয়, তাহলে Ansible ডায়নামিক ইনভেন্টরি সমর্থন করে। ডায়নামিক ইনভেন্টরি ফাইল একটি স্ক্রিপ্ট বা প্লাগইন আকারে লেখা হয় যা রান টাইমে হোস্টের তথ্য জেনারেট করে।

সংক্ষেপে

  • INI ফরম্যাট: সাধারণ ও সহজ; ছোট থেকে মাঝারি আকারের ইনভেন্টরি ব্যবস্থাপনার জন্য উপযোগী।
  • YAML ফরম্যাট: জটিল ইনভেন্টরি ব্যবস্থাপনা এবং কাস্টমাইজেশনের জন্য উপযুক্ত।
  • ডায়নামিক ইনভেন্টরি: বড় বা পরিবর্তনশীল পরিবেশের জন্য উপযোগী।

এভাবেই আপনি Ansible ইনভেন্টরি ফাইল তৈরি এবং সেটআপ করে আপনার হোস্টগুলো সহজেই ম্যানেজ করতে পারবেন।

Promotion